//package org.halk.util.pdf;
//
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//
//import java.io.*;
//
//public class PhantomJsUtils {
//
//    static Log log = LogFactory.getLog(PhantomJsUtils.class);
//
////echarts-convert.js所在目录，实际使用可以写在.yml文件里，然后使用@value动态获取
//
//    private static final String echartConverJsPath = "D://page/echarts-convert.js";
//
////phantomjs所在目录，到bin那一层，实际使用可以写在.yml文件里，然后使用@value动态获取
//
//    private static final String phantomJsPath = "D://page/phantomjs-2.1.1-windows\\bin\\";
//
//
//    /**
//     * 生成echarts图片的方法
//     *
//     * @param options echarts的option
//     * @param tmpDir  存放图片的临时目录
//     * @param width   图片的宽，多少px
//     * @param height  图片的高，多少px
//     * @return
//     */
//
//    public static String genEChart(String options, String tmpDir, int width, int height) throws Exception {
//
//        log.info("########## 开始生成EChart图片 #########");
//
////生成初始化json文件
//
//        String jsonPath = tmpDir + "bar.json";
//
//        writeFile(options, jsonPath);
//
////生成png文件
//
//        String imgPath = tmpDir + "bar.png";
//
//        createDirFile(imgPath);
//
////拼接phantomjs命令行
//
//        String cmd = phantomJsPath + "phantomjs " + echartConverJsPath +
//
//                " -infile " + jsonPath +
//
//                " -outfile " + imgPath +
//
//                " -width " + width +
//
//                " -height " + height;
//
//        log.info("####### 开始执行command命令： " + cmd);
//
//        Process process = null;
//
//        try {
//
//            process = Runtime.getRuntime().exec(cmd);
//
//            readProcess(process);
//
//// 关闭进程资源对象
//
//            process.waitFor();
//
//        } finally {
//
//            if (null != process) {
//
//                process.destroy();
//
//            }
//
//        }
//
//// 删除生成的临时json文件
//
//        File jsonFile = new File(jsonPath);
//
//        jsonFile.delete();
//
//        return imgPath;
//
//    }
//
//
//    public static void readProcess(Process process) throws Exception {
//
//        InputStream fis = null;
//
//        InputStreamReader isr = null;
//
//        BufferedReader br = null;
//
//        try {
//
////取得命令结果的输出流
//
//            fis = process.getInputStream();
//
////用一个读输出流类去读
//
//            isr = new InputStreamReader(fis);
//
////用缓冲器读行
//
//            br = new BufferedReader(isr);
//
//            String line = null;
//
////直到读完为止
//
//            while ((line = br.readLine()) != null) {
//
//                System.out.println(line);
//
//            }
//
//        } finally {
//
//            if (null != fis) {
//
//                fis.close();
//
//            }
//
//            if (null != isr) {
//
//                isr.close();
//
//            }
//
//            if (null != br) {
//
//                br.close();
//
//            }
//
//        }
//
//    }
//
//
//    public static String writeFile(String options, String dataPath) throws IOException {
//        log.info("########## 内容写入文件 #########");
//        File writeName = createDirFile(dataPath);
//        try (BufferedWriter out = new BufferedWriter(new FileWriter(writeName))) {
//            out.write(options);
//            // 把缓存区内容压入文件
//            out.flush();
//        }
//        return dataPath;
//    }
//
//
//    public static File createDirFile(String path) throws IOException {
//
//        log.info("########## 创建文件 #########");
//
//// 文件路径（路径+文件名）
//
//        File file = new File(path);
//
//// 文件不存在则创建文件，先创建目录
//
//        if (!file.exists()) {
//
//            File dir = new File(file.getParent());
//
//            dir.mkdirs();
//
//            file.createNewFile();
//
//        }
//
//        return file;
//
//    }
//}
